home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BMUG Revelations
/
BMUG Revelations.toast
/
Programming
/
Programming Languages
/
Yerk 3.64
/
modifications
< prev
next >
Wrap
Text File
|
1993-06-27
|
17KB
|
447 lines
Version History of Yerk
----Neon 2.0----
New methods:
Control
setTitle( addr len --), getTitle( -- addr len), getnew(id wind --)
enable: disable:
box size in y decreased by 3 pixels
handle
unlock(-), lock(-), movehi(-), locked?(-b)
event
zoombox supported
file
flushVol (-)
base - extend is faster, >uc fixed
nucleus
ic! fixed, (.stack) protected, cmove replaced with blockmove trap
fargs
fixed ;m
fltmem
fixed 2dup
indlg
draw: fwind removed from each dlg
added remembers current cursor
tools
supports macII-increased table lengths and collision table cell size
decompile
fixed float bug, .num shows signs, contains your own methods
qprint
shows revision date
date
init: removed-no longer needed - must get: then print:
port
kill:
timer
clear:
alert!
returns button item# for which button was pressed
hfs? now works
nucleus may have fwind not visible, but the word neon performs a show: fwind.
If you don't want fwind around at startup, don't say a thing to it and set
the visible flag using resedit.
When a menu Item is selected, both the item number and menuId are stored
into values mitem and menuID.
-------------
This version of Neon is called Yerk 3.1 for now. The nucleus has been modified
to provide a multifinder aware application.
There was an inconsistency in the numbering scheme for menu items in Neon...
notably between check, uncheck, set, get methods. They are now all consistent,
with the first item being item #1.
-----------------
source menu has support for hierarchichal menus and popups.
extra methods in class menu
applemenu defined to support infinite number of items
addone: menubar and remove: menubar - 24 menus in menubar
disable and enable menubar prettier
loading now can occur in background
struct1 included in nuc(no longer option). warray, wordcol, barray, bytecol.
farray fixed fltAt and fltTo to check for ivars
dialog has frame: show: methods, so that the dialog window can come
up invisible for drawing many things, then say show:...looks nicer
theMenu added, that holds the menu addr of the last menu selected.
disk event now checks for initialization needs
=: string modified to lock source
concat: string added
moveHHi added before lock: handle in Struct source as IM suggests
bytecol and wordcol now identify negative numbers (are not unsigned)
NOT ANYMORE>>>
drvr close: now calls kill: first
serial added baudrate, xon, break buffer, status: and bytesIn:
----
savesig finds app signature
handle has getstate: and setstate: methods
string uses hgetstate and hsetstate for concat: and =:
module exam works over application memory space
module env has more imports for appletalkon, hascolor and hasfpu
added +to: for farray
neon folder no longer should have ™
COULD ADD GETSTATE,SETSTATE TO PUT:, ADD:, REPLACE: IN BASICSTR???
nucleus checks for waitNextEvent and cpu cache
barray and warray now use ++2 and ++1 for faster operation in +to:
savesig now gets owner automatically, so that whatever nucleus is running
provides the owner name
modified decompile module so that de' word/module is now de' word|module
so that words with / could be decompiled.
added userItem class to dialog.
:M redefined to show 'method redefined' before the method (for clarity)
fixed locked?: method to call hgetstate
removed initfont from new: control (and getnew)
----Yerk 3.3.0-----
modified pathList by using sArray. Path is now an object of sarray. Changed
class File, and source grep to reflect change. There is no longer a class
called pathlist. sArray holds an array of str255 types.
added do' (object of class) : is to doolist as de' is to dode
' modified :proc to give large stack (necessary for 8 bit deep color monitor)
Changed 2dArray in asm code to be loaded at compile time, and is much faster
(30%) at compiling code. Data is in dictionary, not on heap.
----Yerk 3.3.1----
modified savesig
revised bold fonts in // so 9 pt chicago not loaded
class window now erases grow box when grown
delete now erase cursor if +curs is set
slight change stop: timer
slight cosmetic change to (.mod)
added negate: to class Int
fixed slight bug in decompile (for floats)
----Yerk 3.3.2----
?lines changed in nuc to keep bottom line on screen
and grow: method in window changed to send current line to bottom
if grow shortened window.
fixed to: problem in pathList source for sarray
-----------------------
----Yerk 3.5----
Semi-major revision to system 7. Nucleus has changed with two
code resources.
Install module now works.
recoded (@) and newptr in case heap is below dictionary.
Fixed >ptr in nucleus to use either stripaddress or lo3bytes depending on
whether stripaddress is resident in system.
Added value 'hasGestalt'
Added konstant module...use 'konstant xxxx' to get value of mac equates.
Tool module now uses 4 byte hash..no collisions
No longer need large newptr in frontend, since kernal now calls maxapplzone
'type now does not convert to upper case. This is needed for system 7 since
it uses many lower case 'types.
Fevent increased to handle high level events, but the handlers are not installed yet.
----Yerk 3.6----
changed window source to handle grow box better..
also eliminated nonScrollWind class and followed Michael Hore's example, making the
option to set fpRect by an IVAR of window
Several new methods have been added to window...setLimits:, setZoom:, setScroll, and
others. Check the source for all of them. SetZoom allows the addition of a user
supplied zoombox word (for multiple screen support).
slight modification of nucleus..cleaned up in places. Also, added a bit to the
CODE 1 resource to recognize whether the program is a standalone app or just a
development document.
Added resource to load in ontop of floating point part of the dictionary during
development save. This is required because of system 7.0.1 writing over pack4 calls.
StdSave is therefore redefined. Not necessary for <7.0.1, althought it doesn't hurt.
Adds about 5k to yerk.rsrc. Also, this is not necessary for standalone application,
since you don't do a stdsave on an application. IF YOU RECOMPILE YERK, REMEMBER THAT
THE YERK.RSRC FILE IS MODIFIED, AND YOU NEED TO DELETE OLDER COPIES.
Install now works well. You have to think about how the application is going to
work as opposed to how it worked as a development environment. Eliminate all
openrsrc calls (I patch the old ones [to null]), use menus in resources, don't
read in a path file, and get rid of some of the unnecessary words in your
development startup word. Then run the install module, setting the
various words appropriately. Certain modules will load as Code resources, and
you may delete those you don't need with resedit. Add any other resources you
need from the development resource files, and you are ready to go. [see
the note 'install.txt' included with the distribution - note that
the manual is not updated to reflect these changes]
Added Hierarchy menu item...prints the class chain of an entered class. Source in util mod.
Added stack space in :Proc. I've found that under sys 7, more stack space was necessary,
particularly using dialogs, scrollbars, etc. If an crash happens when you are
using a scrollbar (arrow or gray rgn), try increasing the stack size in Pstart.
This may be done by patching pstart for future compilations, and the proc 'ctlproc',
which is the called procedure during dragControl.
Fixed /mod to yield negative values. Propogated fix in appropriate sources (adding abs
to ignore negative values).
Added abort load (hit space key) when loading a file with echo off.
Fixed bug in decompile.
modified userItem in dialog.
// now can be stopped by hitting a key even if not echoing.
---note: not all system 7 calls are set up to work yet. The next version of Yerk will
have the 'call' word intelligent where it will set up the inline toolkit
calls correctly for all types of traps (dispatched, etc).
So be alert using the new system 7 traps. Get IM VI to be sure.
----Yerk 3.6.1----
added getnew: to rsrcWind to make sure WIND rsrc is marked non purgeable if
savePosition IVAR is true. This is because a call to GetNewWindow sets
the purge bit of the rsrc when called.
Fixed a problem with savesig. The original definition used loadfile.
Remove: loadfile closes the file, which in the case of a standalone
application will close the resource fork!
----Yerk 3.6.2----
changed the way getnew: methods work...now all resource id's are stored as IVARS.
Getnew: doesn't require an id on the stack....THIS MEANS OLDER CODE MUST BE CHANGED
IF YOU USED RESOURCE ID's.
Fixed super/self problem with decompile.
added alive: method to dialog class
exam module window drags over all grayrgn
added put: farray get: farray
added getName: checkone: methods to Menu class. Checkone: unchecks all items but one.
getname: gets name of menu.
Flush cache for 030 and 040 machines at words TRAP, :PROC, and (FDOS). Also added
word CFLUSH in nucleus.
added ptin: method to Rect
simplified fill: method in class String
modified Window so that command key option works as in IM
modified :Proc to grab a5 and a3 from a resource loaded at startup in nucleus
:proc now knows the proper value of a5 and a3.
Also rewrote Time Manager and VBL Manager (in Supplement/Mystuff) to be
a5,a3 aware.
modified exam module to display higher addresses due to virtual memory
The install module is modified so that you may select those modules
you want installed within your application. You may want some standard
Yerk ones, your own, or none at all.
----Yerk 3.6.3---------
Fixed a bug that happened after doing a stdSave in YerkFP.com. Once this was executed,
if you tried to compile code that used floating point constants, yerk would bomb.
Now you can take a snapshot of the environment and continue to work without having to
exit and reenter.
Fixed a bug in (fdos) that affects 68030 and 040 chips.
----Yerk 3.6.4--------
****** the following four changes mean you might have to change your sources to comply.
Eliminated 'sony', 'profile', and 'external' from dictionary.
Menus now in resources..getmtxt and module will no longer be supported in Yerk
Changed 'getname: pmenu' to getHItemName, so can use super method
Changed set: menu to have stack consistent with sarray input to: (addr len index)
Include a message during compile to name the redefined object.
fmax, fmin added to dictionary
Added checked?: to Menu to tell if a menu item has been checked or not
Added method portBit: to window and dialog class
:Proc redefined for better a5,a3 support; removed MYA5 resource
Modified source 'ovl' to set a5,a3 in any :proc words in modules
There is now a word, initProcs, that should be included in your
startup word. It will initialize all proc words in the code with
the current A5 and A3 values. When a module is loaded, it will
be searched for proc words and they too will be initialized automatically.
Added ?rdepth switch (+rdepth, -rdepth) for execution of :proc word in background.
If the yerk program is running in the background and a completion routine
is executed, A5, and A3 are handled properly, but there is a check
for rdepth to be in a certain range. This could lead to problems
since the new rstack is set up on the current stack, wherever that is.
So, to be safe, turn the check off (-rdepth) until the completion is done.
VBL and TimeManager support
Added frame: dialog to draw default frame around the control at will
ffcb in nucleus now large enough to be real file object
Protect stack from getting more floats that floatmem allows
SysEdits now supports key: window; cut,copy,paste for the front window
Added listing of objects in .clist
Added 'part' as parameter for zoom handler...Used to have to use
mp2 to get zoom state from methods stack
Lock string down before printing. Also test for handle state and unlock if
necessary for replace.
Added ?ishandle to nucleus and valid: to handle so now you can check a handle to see
if it is valid. New method Valid: handle. Release: menu checks valid handle first.
NOTE THAT THIS IS NOT 100% EFFECTIVE..among other tests, it calls RecoverHandle
which can cause a Bus Error in a few instances. I'll leave this in for now
to see how good it is....if we never see bombs, then I'll keep it for future
versions. The best way to handle deallocated handles is to zero them afterwards.
However, because of saving images of your work, when you bring an image back
there will be non zero handles in things which are not allocated. This is why
we need a check for valid handles. If anyone has a better idea as to how
to do this, please let me know.
Added a module that echos output (if +file is set) to a file whose
default name is logfile. This file is written to the yerk folder. You
may type '+file' within the interpreter or select the 'Echo to Log'
item in the Yerk menu. If you hold the option key down while
selecting the menu item (or hitting return for +file), the standard file
dialog box appears and allows you to set a different file name. Notice
that the log file is appended to. +file, -file, tofile import words from logmod.
'tofile' is not yet defined.
Gestalt support in nucleus. gestalt returns -- code 0 or errcode (<0). A return
of -1 means gestalt is not supported under the current Mac OS.
Added arcsin, arccos to yerkFP.com
(nevent) automatically loaded into nevent during compile - this is so
compiling can process events and can therefore continue in the background.
Timer now has sync: method to wait till tic counter changes
Added 0 DTR: to Open: for serial ports to take care of powerbook anomoly
Recoded hopen: and orf in File source to lock strings used at appropriate times
to fix occasional improper path formations due to memory moves
Protect getnew: for dialog, ctl, picture, icon classes
Decompile now decompiles the contents of vects, values, and sysvects, if applicable.
Modified getstring to not open yerk.rsrc file. If string not found, abort.
Install process no longer deletes Yerk nucleus. Its resources are copied
into the new application. Also fixed bug so Install module works for
both yerkFP.com and yerk.com.
New word 'saver' replaces 'doSave' in the file menu. Saver will save the
current dictionary in its current folder with the current name. It will
replace any older version by the same name.
When saving the dictionary, you used to have to close all windows except the
fwind before saving. If you didn't do this, when you next launch your
dictionary, you could not open the windows since they were marked as open
when you saved the image. Now, you no longer have to close the windows...
each window is automatically marked as closed before saving, and then
unmarked afterwards.
Added '8*' to kernel, 'within' to yerk.com, and removed '?decimal'.
Added setHSize!: to handle to set the size even if the handle is locked...it
leaves the handle locked after the resize.
Added file marking into the dictionary for better on-line documentation. If
+docs is executed, then as you compile new file sources into the
dictionary, information is stored for each new word. To see the definition
of a word, type 'see theWord'. A scrollable window
will appear showing the entire source, with theWord as near to the top
of the window as possible. -docs turns off the storage. So for development,
set +docs; for the final version of your code, where you want to save space, set -docs.
When +docs is set, each filename is stored in the dictionary with a yerk header,
and each word has its line number stored, which increases the word's length by two bytes.
Other words are RL for reload file from last load (forgets and reloads last
file), FM forget to last mark, /// - same a RL but takes a name input and forgets
and reloads all sources from the named input source - VERY useful in developement.
MForget will forget all definitions up to the named mark.
Nucleus changed to detect whether it is an application or not. Now Install module\
doesn't need to patch CODE.
Nucleus also puts warm start code at ApplScratch, or $A78 in Mac Memory. So
if you bomb and are using Macsbug, you can say 'g a78' or 'g applscratch'
from Macsbug and you have a good chance of getting back into Yerk with
your code intact.
Decompile now supports float named input parameters and local variables.
CtlWind now supports system 7 popup menus.
Fixed bug in hitting scrollbar in ListMan (Install module).